package com.fxp.project.jiuselu.web.models.sample.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fxp.project.jiuselu.web.business.v1.request.base.ReqBasePage;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;

/**
 * 样品订单对象 jsl_sample_order
 *
 * @author Jason.Wang
 * @date 2022-06-08
 */
@Data
public class SampleOrder extends ReqBasePage
{
    private static final long serialVersionUID = 1L;

    /** 样品主键 */
    private String sampleId;

    /** 用户id */
    private Long userId;

    /** 用户名称 */
    private String userName;

    /**
     * 下单地址信息
     */
    @NotNull(message = "用户地址信息不能为空")
    private Long addressId;

    /** 样品订单状态;0：未完结 1：已完结 2:已取消 */
    private Long sampleStatus;

    /** 发货状态;0：未发货 1：已发货 */
    private Long logisticStatus;

    /** 收货人 */
    private String consignee;

    /** 国家;0：中国 */
    private Long country;

    /** 省份id */
    private Long provinceId;

    /** 省份名称 */
    private String provinceName;

    /** 市区id */
    private Long cityId;

    /** 市区名称 */
    private String cityName;

    /** 区域id */
    private Long districtId;

    /** 区域名称 */
    private String districtName;

    /** 地址 */
    private String address;

    /** 收货手机 */
    private String phone;

    /** 邮件 */
    private String email;

    /** 物流code */
    private String logisticCode;

    /** 物流名称 */
    private String logisticName;

    /** 快递单号 */
    private String logisticNum;

    //备注
    private String remark;

    /** 下单时间 */
    private LocalDateTime addTime;

    /** 最新发货时间 */
    private Date logisticTime;

    /** 收货确认时间 */
    private Date confirmTime;

    /** 取消订单时间 */
    private Date cancelTime;

    /** 取消订单类型;0：手动取消 1：支付超时 2：退款 */
    private Long cancelType;

    /** 取消订单状态 0 申请退款 1 完成 2 审核通过 3 审核不通过 4 待打款 */
    private Long cancelStatus;

}
